Computer networking involves an intricate, rapidly evolving complex of software and hardware systems, integrating different methodologies, techniques, processes, and protocols together. Various protocols provide standard methods which allow for communications between different components of such heterogeneous network systems. Network protocols have different operating characteristics. For example, UDP (user datagram protocol) is well suited to transporting certain multi-media files, Transmission Control Protocol (TCP) provides additional functions that ensure reliable transport of data to an intended destination, etc. Sometimes protocols are replaced with new versions of the protocols that can provide feature and operating characteristic enhancements. For example, version six of the Internet Protocol (IP) provides enhanced addressing and other features not available from earlier versions of the protocol.
In order to accommodate different methods of operations and operating characteristics of different protocols, network designers sometimes employ a technique called tunneling. Tunneling is a method for transporting packets of data conforming to a first particular protocol over a network using a second protocol by packaging or encapsulating packets of the first protocol within other packets using the second protocol. A conventional data communications device that tunnels packets treats the packet to be tunneled as a payload or data and encapsulates this entire packet including the original packet header with an additional packet header. Designers may use tunneling in order to allow networks that are already in existence but that use different protocols to transport the “tunneled” packets containing the protocol that those networks do not support.
Companies providing network infrastructure(s) used to transmit Internet and other traffic have developed various techniques to manipulate data transmission, including traffic management techniques, web and network caching, etc. Tunneling can sometimes be employed to inhibit such manipulation by insulating packets containing data and protocol information within other packets of a different protocol.